package com.ytjj.qmyx.mall.model.response;

import com.kuaidi100.sdk.response.QueryTrackResp;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 *
 *  *
 **/
@Data
public class ReturnGoodsResponse {

    /**
     * 退货id
     */
    private Integer id;

    /**
     * 服务单号(唯一标识)
     *
     */
    private String serviceNo;

    /**
     * 订单详情id
     *
     */
    private Integer ordersInfoId;

    /**
     * 退款金额
     *
     */
    private BigDecimal amount;

    /**
     * 商品ID
     *
     */
    private Integer productId;

    /**
     * 商品规格
     *
     */
    private String spec;

    /**
     * 数量
     *
     */
    private Integer number;

    /**
     * 是否收到货
     *
     */
    private Integer isGet;

    /**
     * 退货类型必选
     *
     */
    private String returnReason;

    /**
     * 用户退货描述
     *
     */
    private String userRemarks;

    /**
     * 用户退货凭证
     *
     */
    private String userRemarksImg;

    /**
     * 客服审核：1-待审核 2-审核通过 3-审核不通过
     *
     */
    private Integer serviceStatus;

    /**
     * 商家审核：1-待审核 2-审核通过 3-审核不通过
     *
     */
    private Integer bankerStatus;

    /**
     *
     */
    private Date serviceApplyTime;

    /**
     * 客服审核失败备注
     *
     */
    private String serviceRemarks;

    /**
     * 收货人
     *
     */
    private String receivingPerson;

    /**
     * 收货人电话
     *
     */
    private String receivingPhone;

    /**
     * 收货人地址
     *
     */
    private String receivingAddress;

    /**
     * 原因类型
     *
     */
    private String reasonType;

    /**
     * 是否退运费 0-否 1-是
     *
     */
    private Integer refundFare;

    /**
     * 用户退货快递公司
     *
     */
    private String returnExpressCompany;

    /**
     * 用户退货快递单号
     *
     */
    private String returnExpressNo;

    /**
     * 寄回快递已签收时间
     *
     */
    private Date getExpressTime;

    /**
     * 回传订单号
     *
     */
    private String returnOrderNo;

    /**
     * 用户支付凭证
     *
     */
    private String usersPayImg;

    /**
     * 状态 0未提交 1退货中/审核中 2等待寄回 3已寄回待处理 4成功 5拒绝 6撤销 7失败 8寄回中
     *
     */
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;


    private String productName;

    private String productImg;

    private BigDecimal productOprice;//商品原价

    private BigDecimal reducedPrice;//商品优惠金额

    private BigDecimal productPrice;//商品优惠后的金额

    /**
     * 审核时间倒计时
     */
    private Date createTimeFall;

    /**
     * 待寄回倒计时
     */
    private Date serviceApplyTimeFall;

    /**
     * 已寄回待处理时间倒计时
     */
    private Date sendEndTimeFall;

    private Integer addressId;

    private QueryTrackResp queryTrackResp;

    /**
     * 申请退货的次数
     */
    private Integer returnGoodNum;

    /**
     * 客服审核不通过次数
     */
    private Integer failNum;

    /**
     * 用户撤回次数
     */
    private Integer revokeNum;

    /**
     * 供应商审核失败原因
     */
    private String bankerRemarks;

    /**
     *售后类型 1-退款 2-退货退款 3-仅退款
     */
    private Integer afterType;

    private Date sendBackExpirationTime;//寄回超时时间

    private String failRemarks;//app展示的失败原因
    //商品价格加总运费
    private BigDecimal productPriceAndFreights;

    private BigDecimal freight;

    private BigDecimal productPriceAndFreight;

    public void fallTime() {
        if(status == 1){
            long l = createTime.getTime() + (1000 * 60 * 60 * 24 * 2);
            createTimeFall = new Date(l);
        }

        if(status == 2 && serviceApplyTime != null) {
            long l1 = serviceApplyTime.getTime() + (1000 * 60 * 60 * 24 * 3);
            serviceApplyTimeFall = new Date(l1);
        }

        if(status == 3) {
            long l1 = updateTime.getTime() + (1000 * 60 * 60 * 24 * 7);
            sendEndTimeFall = new Date(l1);
        }
    }
}
